package com.ruoyi.puyu.mapper;

import com.ruoyi.puyu.domain.PuyuLessonStudent;

import java.util.List;
import java.util.Map;

/**
 * 学员课时点名Mapper接口
 * 
 * @author wusongwen
 * @date 2024-05-01
 */
public interface PuyuLessonStudentMapper 
{
    /**
     * 查询学员课时点名
     * 
     * @param lessonStudentId 学员课时点名主键
     * @return 学员课时点名
     */
    public PuyuLessonStudent selectPuyuLessonStudentByLessonStudentId(Long lessonStudentId);

    /**
     * 查询学员课时数
     *
     * @param studentId 学员id
     * @return 结果
     */
    public int selectPuyuLessonStudentCountByStudentId(Long studentId);

    /**
     * 根据学员课时点名id查询学员id集合
     * @param lessonStudentIds 学员课时点名主键数组
     * @return 学员ID集合
     */
    public List<Long> selectPuyuLessonStudentIdByLessonStudentIds(Long[] lessonStudentIds);

    /**
     * 获取学员课时数
     * @return 结果
     */
    public List<Map<String, Object>> listLessonStudentSum(Map<String, Object>  params);

    /**
     * 查询学员课时点名列表
     * 
     * @param puyuLessonStudent 学员课时点名
     * @return 学员课时点名集合
     */
    public List<PuyuLessonStudent> selectPuyuLessonStudentList(PuyuLessonStudent puyuLessonStudent);

    /**
     * 根据课程id查询学员课时点名列表
     * @param lessonId 课程id
     * @return 结果
     */
    public List<PuyuLessonStudent> selectPuyuLessonStudentListByLessonId(Long lessonId);

    /**
     * 查询学员课时点名
     *
     * @param puyuLessonStudent 学员课时点名
     * @return 学员课时点名
     */
    public PuyuLessonStudent selectPuyuLessonStudentByLessonStudent(PuyuLessonStudent puyuLessonStudent);

    /**
     * 查询学员同一时间段课时点名是否已存在
     *
     * @param puyuLessonStudent 学员课时点名
     * @return 学员课时点名
     */
    public List<PuyuLessonStudent> selectPuyuLessonStudentByStudent(PuyuLessonStudent puyuLessonStudent);

    /**
     * 新增学员课时点名
     * 
     * @param puyuLessonStudent 学员课时点名
     * @return 结果
     */
    public int insertPuyuLessonStudent(PuyuLessonStudent puyuLessonStudent);

    /**
     * 修改学员课时点名
     * 
     * @param puyuLessonStudent 学员课时点名
     * @return 结果
     */
    public int updatePuyuLessonStudent(PuyuLessonStudent puyuLessonStudent);

    /**
     * 批量修改学员课时点名
     *
     * @param lessonStudentIds 需要修改的数据主键集合
     * @return
     */
    public int updatePuyuLessonStudentByLessonStudentIds(Long[] lessonStudentIds);

    /**
     * 删除学员课时点名
     * 
     * @param lessonStudentId 学员课时点名主键
     * @return 结果
     */
    public int deletePuyuLessonStudentByLessonStudentId(Long lessonStudentId);

    /**
     * 批量删除学员课时点名
     * 
     * @param lessonStudentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePuyuLessonStudentByLessonStudentIds(Long[] lessonStudentIds);
}
